package org.objectstyle.wolips.eomodeler.core.model;
import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Map;
import org.apache.commons.collections.set.ListOrderedSet;
import org.objectstyle.woenvironment.plist.ParserDataStructureFactory;
public class EOModelParserDataStructureFactory implements ParserDataStructureFactory {
public Collection<Object> createCollection(String _keyPath) {
boolean createSortedSet = false;
if ("root.attributes".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.attributesUsedForLocking".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.arguments".equals(_keyPath)) {
createSortedSet = false;
} else if ("root.classProperties".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.entities".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.storedProcedures".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.sharedObjectFetchSpecificationNames".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.internalInfo._clientClassPropertyNames".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.internalInfo._deletedEntityNamesInObjectStore".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.primaryKeyAttributes".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.entityIndexes".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.entityIndexes.attributes".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.relationships".equals(_keyPath)) {
createSortedSet = true;
} else if ("root.relationships.joins".equals(_keyPath)) {
createSortedSet = true;
} else if (_keyPath.startsWith("root.connectionDictionary.jdbc2Info.typeInfo.") && _keyPath.endsWith(".defaultJDBCType")) {
createSortedSet = true;
} else if (_keyPath.endsWith(".prefetchingRelationshipKeyPaths")) {
createSortedSet = true;
} else if (_keyPath.endsWith(".rawRowKeyPaths")) {
createSortedSet = true;
}
Collection<Object> collection;
if (createSortedSet) {
//collection = new PropertyListSet<Object>();
collection = ListOrderedSet.decorate(new HashSet<Object>());
} else {
collection = new LinkedList<Object>();
}
return collection;
}
public Map<Object, Object> createMap(String _keyPath) {
return new PropertyListMap<Object, Object>();
}
}