1 /*******************************************************************************
\r
2 * Copyright (c) 2007, 2010 Association for Decentralized Information Management
\r
3 * in Industry THTH ry.
\r
4 * All rights reserved. This program and the accompanying materials
\r
5 * are made available under the terms of the Eclipse Public License v1.0
\r
6 * which accompanies this distribution, and is available at
\r
7 * http://www.eclipse.org/legal/epl-v10.html
\r
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.db.impl.graph;
\r
14 import org.simantics.db.MetadataI;
\r
15 import org.simantics.db.Resource;
\r
16 import org.simantics.db.VirtualGraph;
\r
17 import org.simantics.db.WriteGraph;
\r
18 import org.simantics.db.exception.DatabaseException;
\r
19 import org.simantics.db.exception.ServiceException;
\r
20 import org.simantics.db.request.Write;
\r
21 import org.simantics.db.request.WriteOnly;
\r
22 import org.simantics.db.request.WriteResult;
\r
23 import org.simantics.db.request.WriteTraits;
\r
24 import org.simantics.db.service.ByteReader;
\r
26 public interface WriteSupport extends MetadataI {
\r
28 void claim(VirtualGraph provider, int subject, int predicate, int object)
\r
29 throws ServiceException;
\r
31 void claim(VirtualGraph provider, Resource subject, Resource predicate, Resource object)
\r
32 throws ServiceException;
\r
34 boolean removeStatement(VirtualGraph provider, Resource subject, Resource predicate, Resource object)
\r
35 throws ServiceException;
\r
37 void claimValue(VirtualGraph provider, int resource, byte[] value, int length) throws DatabaseException;
\r
38 void claimValue(VirtualGraph provider, Resource resource, byte[] value) throws DatabaseException;
\r
39 void claimValue(VirtualGraph provider, Resource resource, ByteReader reader, int amount) throws DatabaseException;
\r
41 void denyValue(VirtualGraph provider, Resource resource) throws ServiceException;
\r
43 void setValue(VirtualGraph provider, Resource resource, byte[] value) throws ServiceException;
\r
45 Resource createResource(VirtualGraph provider)
\r
46 throws DatabaseException;
\r
48 Resource createResource(VirtualGraph provider, long clusterId)
\r
49 throws DatabaseException;
\r
51 Resource createResource(VirtualGraph provider, Resource clusterSet)
\r
52 throws DatabaseException;
\r
54 void createClusterSet(VirtualGraph provider, Resource clusterSet)
\r
55 throws DatabaseException;
\r
57 boolean hasClusterSet(VirtualGraph provider, Resource clusterSet)
\r
58 throws ServiceException;
\r
60 Resource setDefaultClusterSet(Resource clusterSet)
\r
61 throws ServiceException;
\r
63 void performWriteRequest(WriteGraph graph, Write request) throws DatabaseException;
\r
64 <T> T performWriteRequest(WriteGraph graph, WriteResult<T> request) throws DatabaseException;
\r
65 void performWriteRequest(WriteGraph graph, WriteOnly request) throws DatabaseException;
\r
67 boolean writeOnly();
\r
69 void flush(boolean intermediate);
\r
70 void flushCluster();
\r
71 void flushCluster(Resource r);
\r
75 void commitDone(WriteTraits writeTraits, long csid);
\r
76 void clearUndoList(WriteTraits writeTraits);
\r
79 * @return size of meta data before clearing.
\r
81 int clearMetadata();
\r