// Path: src/org/openddr/simpleapi/oddr/model/vocabulary/Vocabulary.java
// public class Vocabulary {
// 
//     private String[] aspects = null;
//     private Map<String, VocabularyProperty> properties = null;
//     private Map<String, VocabularyVariable> vocabularyVariables = null;
//     private String vocabularyIRI = null;
// 
//     public String[] getAspects() {
//         return aspects;
//     }
// 
//     public void setAspects(String[] aspects) {
//         this.aspects = aspects;
//     }
// 
//     public Map<String, VocabularyProperty> getProperties() {
//         return properties;
//     }
// 
//     public void setProperties(Map<String, VocabularyProperty> properties) {
//         this.properties = properties;
//     }
// 
//     public Map<String, VocabularyVariable> getVocabularyVariables() {
//         return vocabularyVariables;
//     }
// 
//     public void setVocabularyVariables(Map<String, VocabularyVariable> vocabularyVariables) {
//         this.vocabularyVariables = vocabularyVariables;
//     }
// 
//     public String getVocabularyIRI() {
//         return vocabularyIRI;
//     }
// 
//     public void setVocabularyIRI(String vocabularyIRI) {
//         this.vocabularyIRI = vocabularyIRI;
//     }
// }
// 
// Path: src/org/openddr/simpleapi/oddr/model/vocabulary/VocabularyProperty.java
// public class VocabularyProperty {
// 
//     private String[] aspects = null;
//     private String defaultAspect = null;
//     private String expr = null;
//     private String name = null;
//     private String type = null;
// 
//     public String[] getAspects() {
//         return aspects;
//     }
// 
//     public void setAspects(String[] aspects) {
//         this.aspects = aspects;
//     }
// 
//     public String getDefaultAspect() {
//         return defaultAspect;
//     }
// 
//     public void setDefaultAspect(String defaultAspect) {
//         this.defaultAspect = defaultAspect;
//     }
// 
//     public String getExpr() {
//         return expr;
//     }
// 
//     public void setExpr(String expr) {
//         this.expr = expr;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getType() {
//         return type;
//     }
// 
//     public void setType(String type) {
//         this.type = type;
//     }
// }
// 
// Path: src/org/openddr/simpleapi/oddr/model/vocabulary/VocabularyVariable.java
// public class VocabularyVariable {
// 
//     private String aspect = null;
//     private String id = null;
//     private String name = null;
//     private String vocabulary = null;
// 
//     public String getAspect() {
//         return aspect;
//     }
// 
//     public void setAspect(String aspect) {
//         this.aspect = aspect;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getVocabulary() {
//         return vocabulary;
//     }
// 
//     public void setVocabulary(String vocabulary) {
//         this.vocabulary = vocabulary;
//     }
// 
//     @Override
//     public String toString() {
//         return "VocabularyVariable {" + " aspect=" + aspect + " id=" + id + " name=" + name + " vocabulary=" + vocabulary + '}';
//     }
// }


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openddr.simpleapi.oddr.model.vocabulary.Vocabulary;
import org.openddr.simpleapi.oddr.model.vocabulary.VocabularyProperty;
import org.openddr.simpleapi.oddr.model.vocabulary.VocabularyVariable;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
    }

    private void endVariableElement() {
        vocabularyVariable = null;
    }

    private void endVariablesElement() {
        vocabulary.setVocabularyVariables(vocabularyVariables);
        vocabularyVariables = null;
    }

    private void startProperties(Attributes attributes) {
        vocabularyProperties = new HashMap<String, VocabularyProperty>();
    }

    private void startProperty(Attributes attributes) {
        vocabularyProperty = new VocabularyProperty();
        String[] aspectsArray = attributes.getValue(ATTRIBUTE_PROPERTY_ASPECTS).split(",");

        for (int i = 0; i < aspectsArray.length; i++) {
            aspectsArray[i] = aspectsArray[i].trim();
        }

        vocabularyProperty.setAspects(aspectsArray);
        vocabularyProperty.setDefaultAspect(attributes.getValue(ATTRIBUTE_PROPERTY_DEFAULT_ASPECT));
        vocabularyProperty.setExpr(attributes.getValue(ATTRIBUTE_PROPERTY_EXPR));
        vocabularyProperty.setName(attributes.getValue(ATTRIBUTE_PROPERTY_NAME));
        vocabularyProperty.setType(attributes.getValue(ATTRIBUTE_PROPERTY_DATA_TYPE));
    }

// Path: src/org/openddr/simpleapi/oddr/model/vocabulary/Vocabulary.java
// public class Vocabulary {
// 
//     private String[] aspects = null;
//     private Map<String, VocabularyProperty> properties = null;
//     private Map<String, VocabularyVariable> vocabularyVariables = null;
//     private String vocabularyIRI = null;
// 
//     public String[] getAspects() {
//         return aspects;
//     }
// 
//     public void setAspects(String[] aspects) {
//         this.aspects = aspects;
//     }
// 
//     public Map<String, VocabularyProperty> getProperties() {
//         return properties;
//     }
// 
//     public void setProperties(Map<String, VocabularyProperty> properties) {
//         this.properties = properties;
//     }
// 
//     public Map<String, VocabularyVariable> getVocabularyVariables() {
//         return vocabularyVariables;
//     }
// 
//     public void setVocabularyVariables(Map<String, VocabularyVariable> vocabularyVariables) {
//         this.vocabularyVariables = vocabularyVariables;
//     }
// 
//     public String getVocabularyIRI() {
//         return vocabularyIRI;
//     }
// 
//     public void setVocabularyIRI(String vocabularyIRI) {
//         this.vocabularyIRI = vocabularyIRI;
//     }
// }
// 
// Path: src/org/openddr/simpleapi/oddr/model/vocabulary/VocabularyProperty.java
// public class VocabularyProperty {
// 
//     private String[] aspects = null;
//     private String defaultAspect = null;
//     private String expr = null;
//     private String name = null;
//     private String type = null;
// 
//     public String[] getAspects() {
//         return aspects;
//     }
// 
//     public void setAspects(String[] aspects) {
//         this.aspects = aspects;
//     }
// 
//     public String getDefaultAspect() {
//         return defaultAspect;
//     }
// 
//     public void setDefaultAspect(String defaultAspect) {
//         this.defaultAspect = defaultAspect;
//     }
// 
//     public String getExpr() {
//         return expr;
//     }
// 
//     public void setExpr(String expr) {
//         this.expr = expr;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getType() {
//         return type;
//     }
// 
//     public void setType(String type) {
//         this.type = type;
//     }
// }
// 
// Path: src/org/openddr/simpleapi/oddr/model/vocabulary/VocabularyVariable.java
// public class VocabularyVariable {
// 
//     private String aspect = null;
//     private String id = null;
//     private String name = null;
//     private String vocabulary = null;
// 
//     public String getAspect() {
//         return aspect;
//     }
// 
//     public void setAspect(String aspect) {
//         this.aspect = aspect;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getVocabulary() {
//         return vocabulary;
//     }
// 
//     public void setVocabulary(String vocabulary) {
//         this.vocabulary = vocabulary;
//     }
// 
//     @Override
//     public String toString() {
//         return "VocabularyVariable {" + " aspect=" + aspect + " id=" + id + " name=" + name + " vocabulary=" + vocabulary + '}';
//     }
// }


// Path: src/org/openddr/simpleapi/oddr/documenthandler/VocabularyHandler.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openddr.simpleapi.oddr.model.vocabulary.Vocabulary;
import org.openddr.simpleapi.oddr.model.vocabulary.VocabularyProperty;
import org.openddr.simpleapi.oddr.model.vocabulary.VocabularyVariable;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

    }

    private void endVariableElement() {
        vocabularyVariable = null;
    }

    private void endVariablesElement() {
        vocabulary.setVocabularyVariables(vocabularyVariables);
        vocabularyVariables = null;
    }

    private void startProperties(Attributes attributes) {
        vocabularyProperties = new HashMap<String, VocabularyProperty>();
    }

    private void startProperty(Attributes attributes) {
        vocabularyProperty = new VocabularyProperty();
        String[] aspectsArray = attributes.getValue(ATTRIBUTE_PROPERTY_ASPECTS).split(",");

        for (int i = 0; i < aspectsArray.length; i++) {
            aspectsArray[i] = aspectsArray[i].trim();
        }

        vocabularyProperty.setAspects(aspectsArray);
        vocabularyProperty.setDefaultAspect(attributes.getValue(ATTRIBUTE_PROPERTY_DEFAULT_ASPECT));
        vocabularyProperty.setExpr(attributes.getValue(ATTRIBUTE_PROPERTY_EXPR));
        vocabularyProperty.setName(attributes.getValue(ATTRIBUTE_PROPERTY_NAME));
        vocabularyProperty.setType(attributes.getValue(ATTRIBUTE_PROPERTY_DATA_TYPE));
    }

    private void endProperty() {