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(); }
protected OResultSet executeCommand(String query) throws SQLException { try { return database.command(query); } catch (OQueryParsingException e) { throw new SQLSyntaxErrorException("Error while parsing command", e); } catch (OException e) { throw new SQLException("Error while executing command", e); } }
public static ODocument getOrCreateDashboard(ODatabaseDocument db, String className, String domain, String tab) { String sql = String.format("select from %s where %s = ?", OCLASS_DASHBOARD, OPROPERTY_CLASS); List<ODocument> docs = db.query(new OSQLSynchQuery<>(sql, 1), className); ODocument doc; if (docs == null || docs.isEmpty()) { doc = new ODocument(OCLASS_DASHBOARD); doc.field(OPROPERTY_DOMAIN, domain); doc.field(OPROPERTY_TAB, tab); doc.field(OPROPERTY_CLASS, className); doc.save(); } else doc = docs.get(0); return doc; }
@Override protected OResultSet executeCommand(String query) throws SQLException { try { database.activateOnCurrentThread(); return database.command(query, params.values().toArray()); } catch (OException e) { throw new SQLException("Error while executing command", e); } }
public void close() throws SQLException { status = ODatabase.STATUS.CLOSED; if (database != null) { database.activateOnCurrentThread(); database.close(); database = null; } if (orientDBisPrivate) { orientDB.close(); } }
@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; }); }
@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(); } }
@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()); }
final List<Object> outIds = out.get(i); final List<Object> inIds = in.get(i); final ODocument doc = new ODocument(vClass); if (outIds == null && inIds == null) { db.save(doc, clusterName).delete(); } else { doc.field(idPropertyName, i); if (outIds != null) { final ORidBag outBag = new ORidBag(); rid = (ORecordId) l; } else { rid = new ORecordId(getClusterId((Long) l), getClusterPosition((Long) l)); doc.field(outField, outBag); rid = (ORecordId) l; } else { rid = new ORecordId(getClusterId((Long) l), getClusterPosition((Long) l)); doc.fromMap(properties); db.save(doc, clusterName);
@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; }
@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()); }
ORecordId recordId = new ORecordId("#5:0"); ODocumentModel model = new ODocumentModel(recordId); assertModelObjectEquals(recordId.getRecord(), model); recordId = new ORecordId("#5:1"); model.setObject((ODocument)recordId.getRecord()); assertModelObjectEquals(recordId.getRecord(), model); db.begin(); ODocument doc = new ODocument("ClassA"); doc.field("name", "test1"); model = new ODocumentModel(doc); assertEquals("test1", model.getObject().field("name")); interupt(db, model); assertEquals("test1", model.getObject().field("name"));
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(); }
@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")); } }
protected void initGraph(OrientGraph g) { final ODatabaseDocument db = g.getRawDatabase(); boolean txActive = db.getTransaction().isActive(); if (txActive) // COMMIT TX BEFORE ANY SCHEMA CHANGES db.commit(); OSchema schema = db.getMetadata().getSchema(); if (!schema.existsClass(OClass.VERTEX_CLASS_NAME)) schema.createClass(OClass.VERTEX_CLASS_NAME).setOverSize(2); if (!schema.existsClass(OClass.EDGE_CLASS_NAME)) schema.createClass(OClass.EDGE_CLASS_NAME); if (txActive) { // REOPEN IT AGAIN db.begin(); } }
public void setVertexProperties(Long id, Map<String, Object> properties) { if (properties == null || properties.size() == 0) { return; } settingProperties = true; final int cluster = (int) (id % parallel); if (nextVerticesToCreate[cluster] <= id) { if (oVertexClass == null) { oVertexClass = db.getMetadata().getSchema().getClass(vertexClass); } if (nextVerticesToCreate[cluster] < id) { new BatchImporterJob(cluster, oVertexClass, id - 1).run(db); } new BatchImporterJob(cluster, oVertexClass, id).createVertex(db, id, properties); } else { final ODocument doc = db.load(new ORecordId(getClusterId(id), getClusterPosition(id))); if (doc == null) { throw new RuntimeException("trying to insert properties on non existing document"); } doc.fromMap(properties); db.save(doc); } }
public static ODocument getOrCreatePerspectiveItem(ODatabaseDocument db, ODocument perspective, String key, List<String> tags) { Map<String, String> localizedStrings = getLocalizedStrings(OrienteerWebApplication.get(), key, tags); List<ODocument> docs = db.query(new OSQLSynchQuery<>("select from " + PerspectivesModule.OCLASS_ITEM + " where name.values() contains ? and perspective = ?"), localizedStrings.get("en"), perspective); ODocument doc = docs != null && !docs.isEmpty() ? docs.get(0) : null; if (doc == null) { doc = new ODocument(PerspectivesModule.OCLASS_ITEM); doc.field("name", localizedStrings); } return doc; }
public static void setRestricted(ODatabaseDocument db, OClass oClass) { OClass restricted = db.getMetadata().getSchema().getClass("ORestricted"); if (!oClass.isSubClassOf(restricted)) { oClass.addSuperClass(restricted); Collection<OProperty> properties = restricted.properties(); oClass.properties().stream() .filter(p -> !properties.contains(p)) .filter(p -> !(boolean) CustomAttribute.HIDDEN.getValue(p)) .forEach(p -> CustomAttribute.DISPLAYABLE.setValue(p, true)); } }
@Override public void onClick(Optional<AjaxRequestTarget> targetOptional) { ODocument newLocalization = new ODocument(OrienteerLocalizationModule.OCLASS_LOCALIZATION); T schemaObject = AbstractSchemaLocalizationWidget.this.getModelObject(); newLocalization.field(OrienteerLocalizationModule.OPROPERTY_KEY, getLocalizationKey(schemaObject)); newLocalization.field(OrienteerLocalizationModule.OPROPERTY_LANG, ""); newLocalization.field(OrienteerLocalizationModule.OPROPERTY_STYLE, ""); newLocalization.field(OrienteerLocalizationModule.OPROPERTY_VARIATION, ""); newLocalization.field(OrienteerLocalizationModule.OPROPERTY_VALUE, ""); newLocalization.field(OrienteerLocalizationModule.OPROPERTY_ACTIVE, false); getDatabase().save(newLocalization); targetOptional.ifPresent(target -> target.add(table)); }