@Override public boolean isSubClassOf(final String iClassName) { if (iClassName == null) return false; if (iClassName.equalsIgnoreCase(getName()) || iClassName.equalsIgnoreCase(getShortName())) return true; final int s = superClasses.size(); for (int i = 0; i < s; ++i) { if (superClasses.get(i).isSubClassOf(iClassName)) return true; } return false; }
public OImmutableSchema(OSchemaShared schemaShared, ODatabaseDocumentInternal database) { assert schemaShared.getDocument().getInternalStatus() == ORecordElement.STATUS.LOADED; assert database.getSharedContext().getIndexManager().getDocument().getInternalStatus() == ORecordElement.STATUS.LOADED; version = schemaShared.getVersion(); identity = schemaShared.getIdentity(); clusterSelectionFactory = schemaShared.getClusterSelectionFactory(); clustersToClasses = new HashMap<Integer, OClass>(schemaShared.getClasses(database).size() * 3); classes = new HashMap<String, OClass>(schemaShared.getClasses(database).size()); for (OClass oClass : schemaShared.getClasses(database)) { final OImmutableClass immutableClass = new OImmutableClass(oClass, this); classes.put(immutableClass.getName().toLowerCase(Locale.ENGLISH), immutableClass); if (immutableClass.getShortName() != null) classes.put(immutableClass.getShortName().toLowerCase(Locale.ENGLISH), immutableClass); for (int clusterId : immutableClass.getClusterIds()) clustersToClasses.put(clusterId, immutableClass); } properties = new ArrayList<OGlobalProperty>(); for (OGlobalProperty globalProperty : schemaShared.getGlobalProperties()) properties.add(globalProperty); for (OClass cl : classes.values()) { ((OImmutableClass) cl).init(); } this.blogClusters = Collections.unmodifiableSet(new HashSet<Integer>(schemaShared.getBlobClusters())); }
@Override public Object get(ATTRIBUTES iAttribute) { if (iAttribute == null) throw new IllegalArgumentException("attribute is null"); switch (iAttribute) { case NAME: return getName(); case SHORTNAME: return getShortName(); case SUPERCLASS: return getSuperClass(); case SUPERCLASSES: return getSuperClasses(); case OVERSIZE: return getOverSize(); case STRICTMODE: return isStrictMode(); case ABSTRACT: return isAbstract(); case CLUSTERSELECTION: return getClusterSelection(); case CUSTOM: return getCustomInternal(); case DESCRIPTION: return getDescription(); } throw new IllegalArgumentException("Cannot find attribute '" + iAttribute + "'"); }