public String getStreamableName() { acquireSchemaReadLock(); try { return shortName != null ? shortName : name; } finally { releaseSchemaReadLock(); } }
public void acquireSchemaWriteLock() { owner.acquireSchemaWriteLock(); }
private void addPolymorphicClusterIdsWithInheritance(final OClassImpl iBaseClass) { addPolymorphicClusterIds(iBaseClass); for (OClassImpl superClass : superClasses) { superClass.addPolymorphicClusterIdsWithInheritance(iBaseClass); } }
@Override public int hashCode() { int sh = hashCode; if (sh != 0) return sh; acquireSchemaReadLock(); try { sh = hashCode; if (sh != 0) return sh; calculateHashCode(); return hashCode; } finally { releaseSchemaReadLock(); } }
setName(decodeClassName(stringValue)); break; case SHORTNAME: setShortName(decodeClassName(stringValue)); break; case SUPERCLASS: addSuperClass(getDatabase().getMetadata().getSchema().getClass(decodeClassName(stringValue.substring(1)))); } else if (stringValue.startsWith("-")) { removeSuperClass(getDatabase().getMetadata().getSchema().getClass(decodeClassName(stringValue.substring(1)))); } else { setSuperClass(getDatabase().getMetadata().getSchema().getClass(decodeClassName(stringValue))); setSuperClassesByNames(stringValue != null ? Arrays.asList(stringValue.split(",\\s*")) : null); break; case OVERSIZE: setOverSize(Float.parseFloat(stringValue)); break; case STRICTMODE: setStrictMode(Boolean.parseBoolean(stringValue)); break; case ABSTRACT: setAbstract(Boolean.parseBoolean(stringValue)); break; case ADDCLUSTER: { addCluster(stringValue); break; int clId = owner.getClusterId(getDatabase(), stringValue);
if (cls.getDefaultClusterId() != classDefClusterId) cls.setDefaultClusterId(classDefClusterId); } else if (clustersImported) { cls = (OClassImpl) database.getMetadata().getSchema().createClass(className, new int[] { classDefClusterId }); cls.addClusterId(i); cls.setStrictMode(jsonReader.readBoolean(OJSONReader.NEXT_IN_OBJECT)); } else if (value.equals("\"abstract\"")) { cls.setAbstract(jsonReader.readBoolean(OJSONReader.NEXT_IN_OBJECT)); } else if (value.equals("\"oversize\"")) { final String oversize = jsonReader.readString(OJSONReader.NEXT_IN_OBJECT); cls.setOverSize(Float.parseFloat(oversize)); } else if (value.equals("\"strictMode\"")) { final String strictMode = jsonReader.readString(OJSONReader.NEXT_IN_OBJECT); cls.setStrictMode(Boolean.parseBoolean(strictMode)); } else if (value.equals("\"short-name\"")) { final String shortName = jsonReader.readString(OJSONReader.NEXT_IN_OBJECT); if (!cls.getName().equalsIgnoreCase(shortName)) cls.setShortName(shortName); } else if (value.equals("\"super-class\"")) { Map<String, String> customFields = importCustomFields(); for (Entry<String, String> entry : customFields.entrySet()) { cls.setCustom(entry.getKey(), entry.getValue()); cls.setClusterSelection(jsonReader.readString(OJSONReader.NEXT_IN_OBJECT));
ODatabaseDocumentInternal db = getDatabase(); db.checkSecurity(ORule.ResourceGeneric.CLASS, ORole.PERMISSION_UPDATE); if (isSubClassOf(OSecurityShared.RESTRICTED_CLASSNAME)) { throw new OSecurityException( "Class '" + getName() + "' cannot be truncated because has record level security enabled (extends '" + OSecurityShared.RESTRICTED_CLASSNAME + "')"); acquireSchemaReadLock(); try { cl.truncate(); for (OIndex<?> index : getClassIndexes()) index.clear(); superclassIndexes.addAll(getIndexes()); superclassIndexes.removeAll(getClassIndexes()); for (OIndex index : superclassIndexes) { index.rebuild(); releaseSchemaReadLock();
public long getSize() { acquireSchemaReadLock(); try { long size = 0; for (int clusterId : clusterIds) size += getDatabase().getClusterRecordSizeById(clusterId); return size; } finally { releaseSchemaReadLock(); } }
/** * Check if the current instance extends specified schema class. * * @param iClassName of class that should be checked * * @return Returns true if the current instance extends the passed schema class (iClass) * * @see #isSuperClassOf(OClass) */ public boolean isSubClassOf(final String iClassName) { acquireSchemaReadLock(); try { if (iClassName == null) return false; if (iClassName.equalsIgnoreCase(getName()) || iClassName.equalsIgnoreCase(getShortName())) return true; for (OClassImpl superClass : superClasses) { if (superClass.isSubClassOf(iClassName)) return true; } return false; } finally { releaseSchemaReadLock(); } }
public long count(final boolean isPolymorphic) { acquireSchemaReadLock(); try { return getDatabase().countClass(getName(), isPolymorphic); } finally { releaseSchemaReadLock(); } }
public Set<OIndex<?>> getInvolvedIndexes(final Collection<String> fields) { acquireSchemaReadLock(); try { final Set<OIndex<?>> result = new HashSet<OIndex<?>>(getClassInvolvedIndexes(fields)); for (OClassImpl superClass : superClasses) { result.addAll(superClass.getInvolvedIndexes(fields)); } return result; } finally { releaseSchemaReadLock(); } }
public Map<String, OProperty> propertiesMap() { getDatabase().checkSecurity(ORule.ResourceGeneric.SCHEMA, ORole.PERMISSION_READ); acquireSchemaReadLock(); try { final Map<String, OProperty> props = new HashMap<String, OProperty>(20); propertiesMap(props); return props; } finally { releaseSchemaReadLock(); } }
public Collection<OProperty> properties() { getDatabase().checkSecurity(ORule.ResourceGeneric.SCHEMA, ORole.PERMISSION_READ); acquireSchemaReadLock(); try { final Collection<OProperty> props = new ArrayList<OProperty>(); properties(props); return props; } finally { releaseSchemaReadLock(); } }
@Override public Collection<OProperty> getIndexedProperties() { getDatabase().checkSecurity(ORule.ResourceGeneric.SCHEMA, ORole.PERMISSION_READ); acquireSchemaReadLock(); try { Collection<OProperty> indexedProps = new HashSet<OProperty>(); getIndexedProperties(indexedProps); return indexedProps; } finally { releaseSchemaReadLock(); } }
/** * Check if the current instance extends specified schema class. * * @param clazz to check * * @return true if the current instance extends the passed schema class (iClass) * * @see #isSuperClassOf(OClass) */ public boolean isSubClassOf(final OClass clazz) { acquireSchemaReadLock(); try { if (clazz == null) return false; if (equals(clazz)) return true; for (OClassImpl superClass : superClasses) { if (superClass.isSubClassOf(clazz)) return true; } return false; } finally { releaseSchemaReadLock(); } }
public boolean areIndexed(final Collection<String> fields) { final OIndexManager indexManager = getDatabase().getMetadata().getIndexManager(); acquireSchemaReadLock(); try { final boolean currentClassResult = indexManager.areIndexed(name, fields); if (currentClassResult) return true; for (OClassImpl superClass : superClasses) { if (superClass.areIndexed(fields)) return true; } return false; } finally { releaseSchemaReadLock(); } }
public void onPostIndexManagement() { final OIndex<?> autoShardingIndex = getAutoShardingIndex(); if (autoShardingIndex != null) { if (!getDatabase().getStorage().isRemote()) { // OVERRIDE CLUSTER SELECTION acquireSchemaWriteLock(); try { this.clusterSelection = new OAutoShardingClusterSelectionStrategy(this, autoShardingIndex); } finally { releaseSchemaWriteLock(); } } } else if (clusterSelection instanceof OAutoShardingClusterSelectionStrategy) { // REMOVE AUTO SHARDING CLUSTER SELECTION acquireSchemaWriteLock(); try { this.clusterSelection = owner.getClusterSelectionFactory().newInstanceOfDefaultClass(); } finally { releaseSchemaWriteLock(); } } }
public float getOverSize() { acquireSchemaReadLock(); try { if (overSize > 0) // CUSTOM OVERSIZE SET return overSize; // NO OVERSIZE by default float maxOverSize = 0; float thisOverSize; for (OClassImpl superClass : superClasses) { thisOverSize = superClass.getOverSize(); if (thisOverSize > maxOverSize) maxOverSize = thisOverSize; } return maxOverSize; } finally { releaseSchemaReadLock(); } }
@Override public boolean existsProperty(String propertyName) { acquireSchemaReadLock(); try { boolean result = properties.containsKey(propertyName); if (result) return true; for (OClassImpl superClass : superClasses) { result = superClass.existsProperty(propertyName); if (result) return true; } return false; } finally { releaseSchemaReadLock(); } }
@Override public void getIndexes(final Collection<OIndex<?>> indexes) { acquireSchemaReadLock(); try { getClassIndexes(indexes); for (OClass superClass : superClasses) { superClass.getIndexes(indexes); } } finally { releaseSchemaReadLock(); } }