private void convertNameProperty(OrienteerWebApplication app, ODatabaseDocument db, String className) { boolean wasInTransacton = db.getTransaction().isActive(); db.commit(); for(ODocument doc : db.browseClass(className)) { Object value = doc.field("name"); if(value instanceof String) { doc.field("temp", (Object) doc.field("name")); doc.field("name", (String) null); doc.save(); } } OClass oClass = db.getMetadata().getSchema().getClass(className); oClass.dropProperty("name"); OProperty nameProperty = oClass.createProperty("name", OType.EMBEDDEDMAP); CustomAttribute.VISUALIZATION_TYPE.setValue(nameProperty, "localization"); for(ODocument doc : db.browseClass(className)) { if(doc.containsField("temp")) { doc.field("name", CommonUtils.toMap("en", doc.field("temp"))); doc.removeField("temp"); doc.save(); } } if(wasInTransacton) db.begin(); }
public <T extends Element> Set<String> getIndexedKeys( final Class<T> elementClass) { final OSchema schema = getRawGraph().getMetadata().getSchema(); final String elementOClassName = getClassName(elementClass); Set<String> result = new HashSet<String>(); final Collection<? extends OIndex<?>> indexes = getRawGraph() .getMetadata().getIndexManager().getIndexes(); for (OIndex<?> index : indexes) { String indexName = index.getName(); int point = indexName.indexOf("."); if (point > 0) { String oClassName = indexName.substring(0, point); OClass oClass = schema.getClass(oClassName); if (oClass.isSubClassOf(elementOClassName)) result.add(index.getDefinition().getFields().get(0)); } } return result; }
private void updateDefaultOrienteerUsers(ODatabaseDocument db) { OSecurity security = db.getMetadata().getSecurity(); final ODocument admin = security.getUser("admin").getDocument(); admin.field(OrienteerUser.PROP_ID, UUID.randomUUID().toString()); admin.field(OrienteerUser.PROP_EMAIL, "admin@gmail.com"); admin.save(); final ODocument reader = security.getUser("reader").getDocument(); reader.field(OrienteerUser.PROP_ID, UUID.randomUUID().toString()); reader.field(OrienteerUser.PROP_EMAIL, "reader@gmail.com"); reader.save(); final ODocument writer = security.getUser("writer").getDocument(); writer.field(OrienteerUser.PROP_ID, UUID.randomUUID().toString()); writer.field(OrienteerUser.PROP_EMAIL, "writer@gmail.com"); writer.save(); }
@Before public void init() { doc = DBClosure.sudo(db -> { OSchema schema = db.getMetadata().getSchema(); OClass test = schema.createClass("Customer"); test.createProperty("name", OType.STRING); test.createProperty("phone", OType.STRING); ODocument document = new ODocument("Customer"); document.field("name", "Test Name"); document.save(); return document; }); }
ODatabaseDocument db = wicket.getTester().getDatabase(); try { assertFalse(db.getTransaction().isActive()); OSchema schema = db.getMetadata().getSchema(); OClass classA = schema.createClass("TransA"); classA.createProperty("name", OType.STRING); ODocument doc = new ODocument(classA); doc.field("name", "test1"); doc.save(); ORID orid = doc.getIdentity(); db.begin(); assertTrue(db.getTransaction().isActive()); doc = orid.getRecord();
OSchema schema = db.getMetadata().getSchema(); assertFalse(db.isClosed()); db.commit(); if(schema.existsClass(TEST_CLASS_C)) schema.dropClass(TEST_CLASS_C); OClass classC = schema.createClass(TEST_CLASS_C); try OProperty parent = classC.createProperty("parent", OType.LINK); OProperty child = classC.createProperty("child", OType.LINKLIST); CustomAttribute.PROP_INVERSE.setValue(parent, child); CustomAttribute.PROP_INVERSE.setValue(child, parent); ODocument doc1 = new ODocument(classC).save(); ODocument doc2 = new ODocument(classC).save(); ODocument doc3 = new ODocument(classC).save();
@Ignore //TODO: Uncomment when OrientDB issue will be fixed: https://github.com/orientechnologies/orientdb/issues/8067 @Test public void testLinkToOUser() { ODatabaseDocument db = wicket.getTester().getDatabase(); OSchema schema = db.getMetadata().getSchema(); final OClass classA = schema.createClass("TestLinkToOUser"); classA.createProperty("name", OType.STRING); classA.createProperty("user", OType.LINK).setLinkedClass(schema.getClass("OUser")); ORID userRid = new ORecordId("#5:0"); ODocument doc = new ODocument(classA); wicket.getTester().signIn("writer", "writer"); db = wicket.getTester().getDatabase(); db.begin(); ODocument userDoc = userRid.getRecord(); userDoc.field("roles"); doc.field("Admin"); doc.field("user", userDoc); doc.save(); db.commit(); } }
OSchema schema = db.getMetadata().getSchema(); final OClass classA = schema.createClass(className); classA.createProperty("a", OType.STRING); db.registerHook(new ORecordHook() { db.commit(); ODocument doc = new ODocument(classA); doc.field("a", "test"); doc.save(); doc.reload(); doc.field("a", "test2");
@Test @Sudo public void testCallbackHook() throws Exception { ODatabaseDocument db = OrientDbWebSession.get().getDatabase(); OSchema schema = db.getMetadata().getSchema(); OClass oClass = schema.createClass(TEST_CLASS_CALLBACK); oClass.createProperty("name", OType.STRING); try { ODocument doc = new ODocument(oClass); doc.field("name", "testname"); TestCallback callback = new TestCallback(); CallbackHook.registerCallback(doc, TYPE.AFTER_CREATE, callback); CallbackHook.registerCallback(doc, TYPE.BEFORE_CREATE, callback); doc.save(); assertEquals("executed", doc.field("callback"+TYPE.AFTER_CREATE)); assertEquals("executed", doc.field("callback"+TYPE.BEFORE_CREATE)); assertFalse(doc.containsField("__callbacks__")); doc.reload(); assertFalse(doc.containsField("__callbacks__")); assertFalse(doc.containsField("callback"+TYPE.AFTER_READ)); CallbackHook.registerCallback(doc, TYPE.AFTER_READ, callback); doc.reload(); assertEquals("executed", doc.field("callback"+TYPE.AFTER_READ)); } finally { schema.dropClass(TEST_CLASS_CALLBACK); } } }
@Test @Ignore public void testClassChange() { ODatabaseDocument db = wicket.getTester().getDatabase(); OSchema schema = db.getMetadata().getSchema(); OClass classA = schema.createClass("TestClassChangeA"); OClass classB = schema.createClass("TestClassChangeB"); ODocument doc = new ODocument(classA); doc.save(); doc = doc.getIdentity().getRecord(); doc.setClassName(classB.getName()); assertEquals(classB.getName(), doc.getClassName()); doc = doc.getIdentity().getRecord(); assertEquals(classB.getName(), doc.getClassName()); ORID id = doc.getIdentity(); db.commit(true); db.close(); db = wicket.getTester().getDatabase(); doc = id.getRecord(); assertEquals(classB.getName(), doc.getClassName()); }
@Override public ODocument createWidgetDocument(IWidgetType<?> widgetType) { String oClassName = widgetType.getOClassName(); if(oClassName==null) oClassName = OCLASS_WIDGET; OClass oClass = getDatabase().getMetadata().getSchema().getClass(oClassName); if(oClass==null || !oClass.isSubClassOf(OCLASS_WIDGET)) throw new WicketRuntimeException("Wrong OClass specified for widget settings: "+oClassName); ODocument widgetDoc = new ODocument(oClass); widgetDoc.field(OPROPERTY_TYPE_ID, widgetType.getId()); return widgetDoc; }
/** * Register schema. */ public OClass register(final ODatabaseDocumentTx db) { checkNotNull(db); OSchema schema = db.getMetadata().getSchema(); OClass type = schema.getClass(DB_CLASS); if (type == null) { type = schema.createClass(DB_CLASS); type.createProperty(P_PATH, OType.STRING).setNotNull(true); type.createIndex(P_PATH + "idx", INDEX_TYPE.UNIQUE, P_PATH); type.createProperty(P_BLOBID, OType.STRING).setNotNull(true); type.createProperty(P_MIMETYPE, OType.STRING).setNotNull(true); log.info("Created schema: {}, properties: {}", type, type.properties()); } return type; }
@Test public void testDeletionOfDependentClass2() { ODatabaseDocument db = wicket.getTester().getDatabase(); OSchema schema = db.getMetadata().getSchema(); OClass classAbs = schema.createAbstractClass("TestDeletionAbst"); OClass classA = schema.createClass("TestDeletionA", classAbs); ODocument doc = new ODocument(classA); doc.save(); assertEquals(1, classA.count()); OClass classB = schema.createClass("TestDeletionB", classA); doc = new ODocument(classB); doc.save(); assertEquals(1, classB.count()); assertEquals(2, classA.count()); schema.dropClass(classB.getName()); assertEquals(1, classA.count()); }
@Test public void testBrowsePages() throws Exception { ODatabaseDocument db = getDatabase(); Collection<OClass> classes = db.getMetadata().getSchema().getClasses(); PageParameters parameters = new PageParameters(); for (OClass oClass : classes) { parameters.set("className", oClass.getName()); LOG.info("Rendering browse page for class '"+oClass.getName()+"'"); tester.startPage(BrowseOClassPage.class, parameters); tester.assertRenderedPage(BrowseOClassPage.class); } }
@SuppressWarnings("deprecation") private List<String> getCalcProperties(ODocument iDocument) ODatabaseDocument db = iDocument.getDatabase(); OClass oClass = iDocument.getSchemaClass(); if(db==null || oClass==null) return null; OSchema schema = db.getMetadata().getSchema(); int schemaVersion = schema.getVersion(); Integer prevSchemaVersion = schemaVersions.get(db.getURL()); if(!Objects.equals(prevSchemaVersion, schemaVersion)) calcProperties.row(db.getURL()).clear(); for(OClass clazz: schema.getClasses()) for(OProperty property: clazz.properties()) if(calcProperties!=null) this.calcProperties.put(db.getURL(), clazz.getName(), calcProperties); schemaVersions.put(db.getURL(), schemaVersion); return calcProperties.get(db.getURL(), oClass.getName());
@Test public void testInstallingHooks() { ODatabaseDocument db = wicket.getTester().getDatabase(); OClass clazz = db.getMetadata().getSchema().getClass("TestHooks"); assertNotNull(clazz); List<ODocument> ret = db.query(new OSQLSynchQuery<ODocument>("select from TestHooks")); assertTrue(ret.size()>0); ODocument doc = ret.get(0); assertEquals("HOOK", doc.field("name")); } }
public OClass getVertexBaseType() { return getRawGraph().getMetadata().getSchema() .getClass(OrientVertex.CLASS_NAME); }
return null; final OSchema schema = graph.getRawGraph().getMetadata().getSchema(); if (!schema.existsClass(iClassName)) { boolean txActive = graph.getRawGraph().getTransaction().isActive(); try { schema.createClass(iClassName, schema.getClass(getBaseClassName())); final OClass cls = schema.getClass(iClassName); if (!cls.isSubClassOf(getBaseClassName())) throw new IllegalArgumentException("Class '" + iClassName + "' is not an instance of " + getBaseClassName());
@Test @Ignore public void testDeletionOfDependentClass() { ODatabaseDocument db = wicket.getTester().getDatabase(); OSchema schema = db.getMetadata().getSchema(); OClass oRestricted = schema.getClass(OSecurityShared.RESTRICTED_CLASSNAME); OClass classA = schema.createClass("TestDeletionOfDependentClassA", oRestricted); OClass classB = schema.createClass("TestDeletionOfDependentClassB", classA); schema.dropClass(classB.getName()); }
public OClass createVertexType(final String iClassName, final String iSuperClassName) { commitAnyActiveTx("create vertex type '" + iClassName + "' as subclass of '" + iSuperClassName + "'"); return getRawGraph().getMetadata().getSchema() .createClass(iClassName, getVertexType(iSuperClassName)); }