Ignore:
Timestamp:
2016-06-20T12:46:42+12:00 (8 years ago)
Author:
kjdon
Message:

use the new GSXSLT.findExtraMetadataNames in action and transformingReceptionist instead of these two places each implementing this functionality and doing it differently

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/TransformingReceptionist.java

    r30558 r30589  
    219219            }
    220220
    221             NodeList metadataElems = currentDoc.getElementsByTagNameNS(GSXML.GSF_NAMESPACE, "metadata"); //gsf:metadata
    222             NodeList foreachMetadataElems = currentDoc.getElementsByTagNameNS(GSXML.GSF_NAMESPACE, "foreach-metadata"); //gsf:foreach-metadata
    223             NodeList imageElems = currentDoc.getElementsByTagNameNS(GSXML.GSF_NAMESPACE, "image"); //gsf:image
     221            HashSet<String> extra_meta_names = new HashSet<String>();
     222            GSXSLT.findExtraMetadataNames(currentDoc.getDocumentElement(), extra_meta_names);
     223            ArrayList<String> names = new ArrayList<String>(extra_meta_names);         
     224
     225            metaNames.put(currentFile.getAbsolutePath(), names);
     226
    224227            NodeList includeElems = currentDoc.getElementsByTagNameNS(GSXML.XSL_NAMESPACE, "include");
    225228            NodeList importElems = currentDoc.getElementsByTagNameNS(GSXML.XSL_NAMESPACE, "import");
    226229
    227             ArrayList<String> names = new ArrayList<String>();
    228             for (int i = 0; i < metadataElems.getLength(); i++)
    229             {
    230                 Element current = (Element) metadataElems.item(i);
    231                 String name = current.getAttribute(GSXML.NAME_ATT);
    232                 if (name != null && name.length() > 0 && !names.contains(name))
    233                 {
    234                     names.add(name);
    235                 }
    236             }
    237 
    238             for (int i = 0; i < foreachMetadataElems.getLength(); i++)
    239             {
    240                 Element current = (Element) foreachMetadataElems.item(i);
    241                 String name = current.getAttribute(GSXML.NAME_ATT);
    242                 if (name != null && name.length() > 0 && !names.contains(name))
    243                 {
    244                     names.add(name);
    245                 }
    246             }
    247 
    248             for (int i = 0; i < imageElems.getLength(); i++)
    249             {
    250                 Element current = (Element) imageElems.item(i);
    251                 String type = current.getAttribute(GSXML.TYPE_ATT);
    252                 if (type == null || type.length() == 0)
    253                 {
    254                     continue;
    255                 }
    256 
    257                 if (type.equals("source"))
    258                 {
    259                     String[] standardSourceMeta = new String[] { "SourceFile", "ImageHeight", "ImageWidth", "ImageType", "srcicon" };
    260                     for (String meta : standardSourceMeta)
    261                     {
    262                         if (!names.contains(meta))
    263                         {
    264                             names.add(meta);
    265                         }
    266                     }
    267                 }
    268                 else if (type.equals("screen"))
    269                 {
    270                     String[] standardScreenMeta = new String[] { "Screen", "ScreenHeight", "ScreenWidth", "ScreenType", "screenicon" };
    271                     for (String meta : standardScreenMeta)
    272                     {
    273                         if (!names.contains(meta))
    274                         {
    275                             names.add(meta);
    276                         }
    277                     }
    278                 }
    279                 else if (type.equals("thumb"))
    280                 {
    281                     String[] standardThumbMeta = new String[] { "Thumb", "ThumbHeight", "ThumbWidth", "ThumbType", "thumbicon" };
    282                     for (String meta : standardThumbMeta)
    283                     {
    284                         if (!names.contains(meta))
    285                         {
    286                             names.add(meta);
    287                         }
    288                     }
    289                 }
    290             }
    291 
    292             metaNames.put(currentFile.getAbsolutePath(), names);
    293230
    294231            ArrayList<String> includeAndImportList = new ArrayList<String>();
     
    11681105            try
    11691106            {
    1170                 Document inlineTemplateDoc = this.converter.getDOM("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"" + GSXML.XSL_NAMESPACE + "\" xmlns:java=\"" + GSXML.JAVA_NAMESPACE + "\" xmlns:util=\"" + GSXML.UTIL_NAMESPACE + "\" xmlns:gsf=\"" + GSXML.GSF_NAMESPACE + "\">" + inlineTemplate + "</xsl:stylesheet>", "UTF-8");
     1107                Document inlineTemplateDoc = this.converter.getDOM("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xsl:stylesheet version=\"1.0\" "+GSXML.ALL_NAMESPACES_ATTS + "\">" + inlineTemplate + "</xsl:stylesheet>", "UTF-8");
    11711108
    11721109                if (_debug)
Note: See TracChangeset for help on using the changeset viewer.