import org.simantics.db.RequestProcessor;
import org.simantics.db.Resource;
import org.simantics.db.Session;
-import org.simantics.db.VirtualGraph;
import org.simantics.db.WriteGraph;
import org.simantics.db.common.procedure.adapter.AsyncMultiProcedureAdapter;
import org.simantics.db.common.procedure.adapter.ProcedureAdapter;
import org.simantics.db.request.MultiRead;
import org.simantics.db.request.Read;
import org.simantics.db.request.ReadInterface;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.Write;
import org.simantics.db.request.WriteInterface;
import org.simantics.db.request.WriteOnly;
throw new RuntimeException("See cause for the real exception.", exception);
}
- @Override
- public VirtualGraph getProvider() {
- return null;
- }
-
-// @Override
-// public void fillMetadata(Map<String, String> metadata) {
-// }
-
public void acquire() {
try {
semaphore.acquire();
semaphore.release();
}
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
-
@Override
public String toString() {
return "SyncWriteRequestAdapter " + request;
import org.simantics.db.ChangeSetIdentifier;
import org.simantics.db.Operation;
import org.simantics.db.RequestProcessor;
-import org.simantics.db.VirtualGraph;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.procedure.Procedure;
import org.simantics.db.request.DelayedWrite;
*/
public abstract class DelayedWriteRequest implements DelayedWrite, UndoTraits, WriteInterface<Object> {
- @Override
- public VirtualGraph getProvider() {
- return null;
- }
-
- @Override
- public UndoTraits getUndoTraits() {
- return this;
- }
-
@Override
public ChangeSetIdentifier getIdentifier() {
return null;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.procedure.Procedure;
import org.simantics.db.request.DelayedWriteResult;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.WriteInterface;
import org.simantics.db.request.WriteTraits;
final public VirtualGraph getProvider() {
return provider;
}
-
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
@Override
public void request(AsyncRequestProcessor processor, final Procedure<T> procedure) {
import org.simantics.db.VirtualGraph;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.procedure.Procedure;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.WriteInterface;
import org.simantics.db.request.WriteOnly;
import org.simantics.utils.datastructures.Callback;
return provider;
}
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
-
@Override
public void request(AsyncRequestProcessor processor, final Procedure<Object> procedure) {
processor.asyncRequest(this, new Callback<DatabaseException>() {
import org.simantics.db.VirtualGraph;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.procedure.Procedure;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.WriteInterface;
import org.simantics.db.request.WriteOnlyResult;
final public VirtualGraph getProvider() {
return provider;
}
-
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
@Override
public void request(AsyncRequestProcessor processor, final Procedure<T> procedure) {
return provider;
}
- @Override
- public UndoTraits getUndoTraits() {
- return this;
- }
-
-
@Override
public void request(AsyncRequestProcessor processor, final Procedure<Object> procedure) {
processor.asyncRequest(this, new Callback<DatabaseException>() {
import org.simantics.db.VirtualGraph;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.procedure.Procedure;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.WriteInterface;
import org.simantics.db.request.WriteResult;
final public VirtualGraph getProvider() {
return provider;
}
-
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
@Override
public void request(AsyncRequestProcessor processor, final Procedure<T> procedure) {
import org.simantics.db.RequestProcessor;
import org.simantics.db.Resource;
import org.simantics.db.Statement;
-import org.simantics.db.VirtualGraph;
import org.simantics.db.WriteGraph;
import org.simantics.db.WriteOnlyGraph;
import org.simantics.db.common.request.DelayedWriteRequest;
import org.simantics.db.procedure.Procedure;
import org.simantics.db.request.DelayedWrite;
import org.simantics.db.request.Read;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.Write;
import org.simantics.utils.datastructures.Callback;
}
if (!t.commit) throw new CancelTransactionException();
}
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
- @Override
- public VirtualGraph getProvider() {
- return null;
- }
};
processor.asyncRequest( request, callback );
import java.util.Map;
import org.simantics.db.Resource;
-import org.simantics.db.VirtualGraph;
import org.simantics.db.WriteGraph;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.layer0.adapter.Template;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.WriteResult;
import org.simantics.layer0.Layer0;
return parameters;
}
-
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
-
- @Override
- public VirtualGraph getProvider() {
- return null;
- }
}
import org.simantics.db.request.MultiRead;
import org.simantics.db.request.Read;
import org.simantics.db.request.ReadInterface;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.Write;
import org.simantics.db.request.WriteInterface;
import org.simantics.db.request.WriteOnly;
callback.run(new DatabaseException("" + name + "operation failed.", t));
}
};
- final WriteTraits writeTraits = new WriteTraits() {
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
- @Override
- public VirtualGraph getProvider() {
- return null;
- }
- };
+ final WriteTraits writeTraits = new WriteTraits() {};
TaskHelper(String name) {
this.name = name;
}
import org.simantics.db.ChangeSetIdentifier;
import org.simantics.db.Session;
-import org.simantics.db.VirtualGraph;
import org.simantics.db.WriteGraph;
import org.simantics.db.exception.CancelTransactionException;
import org.simantics.db.exception.DatabaseException;
ChangeSetIdentifier getIdentifier();
- VirtualGraph getProvider();
-
void fillMetadata(Map<String, String> metadata);
}
* @see WriteResult
* @see Session
*/
+@FunctionalInterface
public interface Write extends WriteTraits {
/**
* @see Session
* @see SimpleGraphRequest
*/
+@FunctionalInterface
public interface WriteOnly extends WriteTraits {
/**
* @see Session
* @see SimpleGraphRequest
*/
+@FunctionalInterface
public interface WriteOnlyResult<T> extends WriteTraits {
/**
* @see Session
* @see SimpleGraphRequest
*/
+@FunctionalInterface
public interface WriteResult<T> extends WriteTraits {
/**
* be cancelled and any changes rolled back
*/
T perform(WriteGraph graph) throws DatabaseException;
-
+
}
public interface WriteTraits {
- /**
- * If this request is undoable it should return UndoTraits interface.
- *
- * @return null or UndoTraits interface.
- */
- UndoTraits getUndoTraits();
-
- VirtualGraph getProvider();
+ default VirtualGraph getProvider() {
+ return null;
+ }
}
@Override
public InputStream getContent() {
StringWriter writer = new StringWriter();
- write(new FilterCRWriter(writer));
+ write(String.format("%n").length() == 1 ? new FilterCRWriter(writer) : writer);
return new ByteArrayInputStream(writer.toString().getBytes(UTF8));
}
}
public static void main(String[] args) {
- ResourceRef Foo = new ResourceRef("Foo", "http://www.dsf.sdf/Foo");
+ /*ResourceRef Foo = new ResourceRef("Foo", "http://www.dsf.sdf/Foo");
ResourceRef Bar = new ResourceRef("Foo", "http://www.dsf.sdf/Bar");
Bar.deprecated = true;
new ResourceFile("org.simantics.graph", "Testi", Arrays.<ResourceRef>asList(
Foo, Bar
- )).write(new OutputStreamWriter(System.out));
+ )).write(new OutputStreamWriter(System.out));*/
+ System.out.println(String.format("%n").length());
}
}
THashMap<String,FieldAssignment> recordMap = new THashMap<String,FieldAssignment>(fields.length);
for(FieldAssignment field : fields) {
if(field.value == null) {
+ String actualName = field.name;
+ if(actualName.charAt(0) == '?')
+ actualName = actualName.substring(1);
String bestMatch = null;
int bestMatchLength = 0;
for(int i=0;i<fieldNames.length;++i) {
String fieldName = fieldNames[i];
- if(field.name.startsWith(fieldName) && fieldName.length() > bestMatchLength) {
+ if(actualName.startsWith(fieldName) && fieldName.length() > bestMatchLength) {
bestMatch = fieldName;
bestMatchLength = fieldName.length();
}
importJava "org.simantics.db.common.utils.ListUtils" where
@JavaName toList
elementsOfList :: Resource -> <ReadGraph> [Resource]
+
+ @JavaName create
+ createList :: [Resource] -> <WriteGraph> Resource
+
+ @javaName insertBack
+ insertBack :: Resource -> [Resource] -> <WriteGraph> ()
+
+ @javaName removeElement
+ removeElement :: Resource -> Resource -> <WriteGraph> Boolean
+
+ @javaName swapWithPrevious
+ swapWithPrevious :: Resource -> Resource -> <WriteGraph> Boolean
+
+ @javaName swapWithNext
+ swapWithNext :: Resource -> Resource -> <WriteGraph> Boolean
+
importJava "org.simantics.db.common.utils.CommonDBUtils" where
isParent :: Resource -> Resource -> <ReadGraph> Boolean
public class SWTThread implements IThreadWorkQueue, Executor {
- final Display display;
+ private final Display display;
+ private final boolean executeAsync;
+
+ public static IThreadWorkQueue getThreadAccess(Display display, boolean executeAsync)
+ {
+ return new SWTThread(display, executeAsync);
+ }
public static IThreadWorkQueue getThreadAccess(Display display)
{
- return new SWTThread(display);
+ return getThreadAccess(display, false);
}
public static IThreadWorkQueue getThreadAccess(Widget widget)
{
- return new SWTThread(widget.getDisplay());
+ return new SWTThread(widget.getDisplay(), false);
}
public static IThreadWorkQueue getThreadAccess() {
- return new SWTThread(Display.getDefault());
+ return new SWTThread(Display.getDefault(), false);
}
- SWTThread(Display display)
+ SWTThread(Display display, boolean executeAsync)
{
this.display = display;
+ this.executeAsync = executeAsync;
}
@Override
@Override
public void execute(Runnable command) {
- syncExec(command);
+ if (executeAsync) asyncExec(command);
+ else syncExec(command);
}
}
import org.simantics.db.VirtualGraph;
import org.simantics.db.WriteGraph;
import org.simantics.db.exception.DatabaseException;
-import org.simantics.db.request.UndoTraits;
import org.simantics.db.request.Write;
import org.simantics.db.testing.cases.FreshDatabaseTest;
import org.simantics.layer0.Layer0;
getSession().syncRequest(new Modi());
}
private static class Modi implements Write {
- @Override
- public UndoTraits getUndoTraits() {
- return null;
- }
@Override
public VirtualGraph getProvider() {
return null;