Skip to content
This repository has been archived by the owner on Jun 25, 2020. It is now read-only.

Commit

Permalink
Implemented Comparable-interface in ElementMetadata
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian Noack committed Mar 23, 2012
1 parent a4cddd7 commit f51030f
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 22 deletions.
18 changes: 10 additions & 8 deletions module/exi/src/main/java/fabric/module/exi/cpp/CppEXICodeGen.java
Expand Up @@ -187,11 +187,12 @@ public void handleTopLevelElement(final FElement element)
// Collect data of elements with simple type
if (element.getSchemaType().isSimple())
{
this.elementMetadata.add(new ElementMetadata(element));
}
ElementMetadata d = new ElementMetadata(element);
this.elementMetadata.add(d);

// Build grammar
grammarFactory.addGlobalElement(element);
// Build grammar
grammarFactory.addGlobalElement(d);
}
}

/**
Expand All @@ -207,11 +208,12 @@ public void handleLocalElement(final FElement element, final String parentName)
// Collect data of elements with simple type
if (element.getSchemaType().isSimple())
{
this.elementMetadata.add(new ElementMetadata(element, parentName));
}
ElementMetadata d = new ElementMetadata(element, parentName);
this.elementMetadata.add(d);

// Build grammar
grammarFactory.addLocalElement(element);
// Build grammar
grammarFactory.addLocalElement(d);
}
}

/**
Expand Down
Expand Up @@ -3,38 +3,34 @@
import exi.ExiException;
import exi.events.ExiEventCodeGenerator;
import exi.grammar.ExiDocumentGrammar;
import exi.grammar.ExiElementGrammar;
import exi.grammar.ExiGrammar;
import exi.grammar.ExiGrammarFactory;
import fabric.wsdlschemaparser.schema.FElement;

import javax.xml.namespace.QName;
import java.util.ArrayList;

public class EXISchemaInformedGrammarFactory implements ExiGrammarFactory {


private ArrayList<String> globalElements;
private ArrayList<ElementMetadata> globalElements;
private ArrayList<ElementMetadata> localElements;


/**
* Constructor.
*/
public EXISchemaInformedGrammarFactory() {
globalElements = new ArrayList<String>();
globalElements = new ArrayList<ElementMetadata>();
localElements = new ArrayList<ElementMetadata>();
}


/**
*
* @param element
*/
public void addGlobalElement(FElement element) {
globalElements.add(element.toString());
public void addGlobalElement(ElementMetadata element) {
globalElements.add(element);
}

public void addLocalElement(FElement element) {
// TODO
public void addLocalElement(ElementMetadata element) {
localElements.add(element);
}


Expand All @@ -52,7 +48,7 @@ public ExiGrammar createDocumentGrammar() throws ExiException {

java.util.Collections.sort(globalElements);
for(int i=0; i< globalElements.size(); i++) {
eg.append(content, end, "SE("+ globalElements.get(i)+")", g.getNextCode(i+1));
eg.append(content, end, "SE("+ globalElements.get(i)+")", g.getNextCode(1));
}


Expand Down
Expand Up @@ -19,7 +19,7 @@
*
* @author seidel, reichart
*/
public class ElementMetadata
public class ElementMetadata implements Comparable<ElementMetadata>
{
/** Logger object */
private static final Logger LOGGER = LoggerFactory.getLogger(ElementMetadata.class);
Expand Down Expand Up @@ -383,4 +383,10 @@ private static void createMappingEXIToCpp()
typesEXIToCpp.put("UnsignedInteger", "uint32");
typesEXIToCpp.put("NBitUnsignedInteger", "unsigned int");
}


@Override
public int compareTo(ElementMetadata elementMetadata) {
return elementName.compareTo(elementMetadata.elementName);
}
}

0 comments on commit f51030f

Please sign in to comment.