@Override public OProperty setCollate(final String iCollateName) { delegate.setCollate(iCollateName); return this; }
@Override public OProperty setCollate(OCollate collate) { delegate.setCollate(collate); return this; }
@VisibleForTesting void upgradeSchemaToCaseInsensitiveName() { try (ODatabaseDocumentTx db = configDatabaseInstance.get().connect()) { OClass blobStoreClass = db.getMetadata().getSchema().getClass(DB_CLASS); blobStoreClass.getProperty(P_NAME).setCollate(new OCaseInsensitiveCollate()); } }
private void createCaseInsensitiveNameField(final OClass type) { log.info("Creating case-insensitive name field on component"); if (!type.existsProperty(P_CI_NAME)) { type.createProperty(P_CI_NAME, OType.STRING) .setCollate(new OCaseInsensitiveCollate()) .setMandatory(false) .setNotNull(false); } }
@Override public void afterRegistration(final ODatabaseObject db, final SchemeDescriptor descriptor, final Field field, final CaseInsensitive annotation) { final String name = field.getName(); final boolean ci = annotation.value(); final String collate = ci ? OCaseInsensitiveCollate.NAME : ODefaultCollate.NAME; final OProperty property = db.getMetadata().getSchema() .getClass(descriptor.schemeClass).getProperty(name); if (!property.getCollate().getName().equals(collate)) { property.setCollate(collate); logger.debug("Set {}.{} property case insensitive={}", descriptor.schemeClass, name, ci); } } }
@Override protected void setValue(OProperty entity, String critery, V value) { ODatabaseDocument db = OrientDbWebSession.get().getDatabase(); db.commit(); try { CustomAttribute custom; if(OPropertyPrototyper.COLLATE.equals(critery)) { entity.setCollate((String)value); } else if((custom = CustomAttribute.getIfExists(critery))!=null) { custom.setValue(entity, value); } else { PropertyResolver.setValue(critery, entity, value, null); } } finally { db.begin(); } }
@Override protected void defineType(final OClass type) { type.createProperty(P_NODE_ID, OType.STRING) .setCollate(new OCaseInsensitiveCollate()) .setMandatory(true) .setNotNull(true); type.createProperty(P_LAST_HEALTHCHECK, OType.DATETIME) .setMandatory(true) .setNotNull(true); type.createIndex(I_NODE_ID, INDEX_TYPE.UNIQUE, P_NODE_ID); }
@Override protected void defineType(final OClass type) { type.createProperty(P_NAME, OType.STRING) .setCollate(new OCaseInsensitiveCollate()) .setMandatory(true) .setNotNull(true); type.createProperty(P_TYPE, OType.STRING) .setMandatory(true) .setNotNull(true); type.createProperty(P_ATTRIBUTES, OType.EMBEDDEDMAP) .setMandatory(true) .setNotNull(true); type.createIndex(I_NAME, INDEX_TYPE.UNIQUE, P_NAME); }
private OClass createOrUpdateORoleClass(final ODatabaseDocument database, OClass identityClass) { OClass roleClass = database.getMetadata().getSchema().getClass("ORole"); boolean unsafe = false; if (roleClass == null) { roleClass = database.getMetadata().getSchema().createClass("ORole", identityClass); unsafe = true; } else if (!roleClass.getSuperClasses().contains(identityClass)) // MIGRATE AUTOMATICALLY TO 1.2.0 roleClass.setSuperClasses(Arrays.asList(identityClass)); if (!roleClass.existsProperty("name")) { roleClass.createProperty("name", OType.STRING, (OType) null, unsafe).setMandatory(true).setNotNull(true).setCollate("ci"); roleClass.createIndex("ORole.name", INDEX_TYPE.UNIQUE, ONullOutputListener.INSTANCE, "name"); } else { final OProperty name = roleClass.getProperty("name"); if (name.getAllIndexes().isEmpty()) roleClass.createIndex("ORole.name", INDEX_TYPE.UNIQUE, ONullOutputListener.INSTANCE, "name"); } if (!roleClass.existsProperty("mode")) roleClass.createProperty("mode", OType.BYTE, (OType) null, unsafe); if (!roleClass.existsProperty("rules")) roleClass.createProperty("rules", OType.EMBEDDEDMAP, OType.BYTE, unsafe); if (!roleClass.existsProperty("inheritedRole")) roleClass.createProperty("inheritedRole", OType.LINK, roleClass, unsafe); return roleClass; }
@Override protected void defineType(final OClass type) { type.createProperty(P_REPOSITORY_NAME, OType.STRING) .setCollate(new OCaseInsensitiveCollate()) .setMandatory(true) .setNotNull(true); type.createProperty(P_RECIPE_NAME, OType.STRING) .setMandatory(true) .setNotNull(true); type.createProperty(P_ONLINE, OType.BOOLEAN) .setMandatory(true) .setNotNull(true); type.createProperty(P_ATTRIBUTES, OType.EMBEDDEDMAP); type.createIndex(I_REPOSITORY_NAME, INDEX_TYPE.UNIQUE, P_REPOSITORY_NAME); }
private void createOrUpdateOUserClass(final ODatabaseDocument database, OClass identityClass, OClass roleClass) { boolean unsafe = false; OClass userClass = database.getMetadata().getSchema().getClass("OUser"); if (userClass == null) { userClass = database.getMetadata().getSchema().createClass("OUser", identityClass); unsafe = true; } else if (!userClass.getSuperClasses().contains(identityClass)) // MIGRATE AUTOMATICALLY TO 1.2.0 userClass.setSuperClasses(Arrays.asList(identityClass)); if (!userClass.existsProperty("name")) { ((OClassImpl) userClass).createProperty("name", OType.STRING, (OType) null, unsafe).setMandatory(true).setNotNull(true) .setCollate("ci").setMin("1").setRegexp("\\S+(.*\\S+)*"); userClass.createIndex("OUser.name", INDEX_TYPE.UNIQUE, ONullOutputListener.INSTANCE, "name"); } else { final OProperty name = userClass.getProperty("name"); if (name.getAllIndexes().isEmpty()) userClass.createIndex("OUser.name", INDEX_TYPE.UNIQUE, ONullOutputListener.INSTANCE, "name"); } if (!userClass.existsProperty(OUser.PASSWORD_FIELD)) userClass.createProperty(OUser.PASSWORD_FIELD, OType.STRING, (OType) null, unsafe).setMandatory(true).setNotNull(true); if (!userClass.existsProperty("roles")) userClass.createProperty("roles", OType.LINKSET, roleClass, unsafe); if (!userClass.existsProperty("status")) userClass.createProperty("status", OType.STRING, (OType) null, unsafe).setMandatory(true).setNotNull(true); }
type.createProperty(P_VERSION, OType.STRING); type.createProperty(P_CI_NAME, OType.STRING) .setCollate(new OCaseInsensitiveCollate()) .setMandatory(true) .setNotNull(true);