Changeset 25107

Show
Ignore:
Timestamp:
21.02.2012 09:46:06 (7 years ago)
Author:
sjm84
Message:

Added functions that check for duplicate metadata values when displaying metadata

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/XSLTUtil.java

    r24972 r25107  
    1919package org.greenstone.gsdl3.util; 
    2020 
     21import java.util.ArrayList; 
    2122import java.util.Date; 
     23import java.util.HashMap; 
    2224import java.util.Locale; 
    2325import java.util.MissingResourceException; 
     
    3638public class XSLTUtil 
    3739{ 
    38  
     40    protected static HashMap<String, ArrayList<String>> _foundTableValues = new HashMap<String, ArrayList<String>>(); 
    3941    static Logger logger = Logger.getLogger(org.greenstone.gsdl3.util.XSLTUtil.class.getName()); 
    4042 
     
    176178    { 
    177179        key = key.replaceAll("__INTERFACE_NAME__", interface_name); 
    178          
     180 
    179181        String[] args = null; 
    180182        if (args_str != null && !args_str.equals("")) 
     
    415417        } 
    416418    } 
    417      
     419 
    418420    public static String escapeNewLines(String str) 
    419421    { 
    420         if(str == null || str.length() < 1) 
     422        if (str == null || str.length() < 1) 
    421423        { 
    422424            return null; 
     
    424426        return str.replace("\n", "\\\n"); 
    425427    } 
    426      
     428 
    427429    public static String escapeQuotes(String str) 
    428430    { 
    429         if(str == null || str.length() < 1) 
     431        if (str == null || str.length() < 1) 
    430432        { 
    431433            return null; 
     
    433435        return str.replace("\"", "\\\""); 
    434436    } 
    435      
     437 
    436438    public static String escapeNewLinesAndQuotes(String str) 
    437439    { 
    438         if(str == null || str.length() < 1) 
     440        if (str == null || str.length() < 1) 
    439441        { 
    440442            return null; 
     
    442444        return escapeNewLines(escapeQuotes(str)); 
    443445    } 
     446 
     447    public static void clearMetadataStorage() 
     448    { 
     449        _foundTableValues.clear(); 
     450    } 
     451 
     452    public static boolean checkMetadataNotDuplicate(String name, String value) 
     453    { 
     454        if(_foundTableValues.containsKey(name)) 
     455        { 
     456            for(String mapValue : _foundTableValues.get(name)) 
     457            { 
     458                if(mapValue.equals(value)) 
     459                { 
     460                    return false; 
     461                } 
     462            } 
     463            _foundTableValues.get(name).add(value); 
     464            return true; 
     465        } 
     466         
     467        ArrayList<String> newList = new ArrayList<String>(); 
     468        newList.add(value); 
     469         
     470        _foundTableValues.put(name, newList); 
     471         
     472        return true; 
     473    } 
    444474}