21import org.openscience.cdk.interfaces.IAtomContainer;
23import com.google.gson.ExclusionStrategy;
24import com.google.gson.FieldAttributes;
25import com.google.gson.Gson;
26import com.google.gson.GsonBuilder;
28import denoptim.graph.APClass;
29import denoptim.graph.APClass.APClassDeserializer;
30import denoptim.graph.APTreeMap;
31import denoptim.graph.APTreeMap.APMapSerializer;
32import denoptim.graph.AttachmentPoint;
33import denoptim.graph.DGraph;
34import denoptim.graph.DGraph.DENOPTIMGraphDeserializer;
35import denoptim.graph.DGraph.DENOPTIMGraphSerializer;
36import denoptim.graph.Edge;
37import denoptim.graph.Edge.DENOPTIMEdgeSerializer;
38import denoptim.graph.EmptyVertex;
39import denoptim.graph.Fragment;
40import denoptim.graph.Ring;
41import denoptim.graph.Ring.DENOPTIMRingSerializer;
42import denoptim.graph.SymmetricAPs;
43import denoptim.graph.SymmetricAPs.SymmetricAPsSerializer;
44import denoptim.graph.SymmetricVertexes;
45import denoptim.graph.SymmetricVertexes.SymmetricVertexesSerializer;
46import denoptim.graph.Template;
47import denoptim.graph.Vertex;
48import denoptim.graph.Vertex.DENOPTIMVertexDeserializer;
81 .registerTypeHierarchyAdapter(IAtomContainer.class,
96 .registerTypeAdapter(
Vertex.class,
104 .registerTypeHierarchyAdapter(IAtomContainer.class,
150 && field.getName().equals(
"owner")) {
154 && field.getName().equals(
"user")) {
158 && field.getName().equals(
"cutId")) {
161 if (field.getDeclaringClass() ==
Vertex.class
162 && field.getName().equals(
"owner")) {
165 if (field.getDeclaringClass() ==
Fragment.class
166 && field.getName().equals(
"jGraphFragIsomorphism")) {
169 if (field.getDeclaringClass() ==
Template.class
170 && field.getName().equals(
"mol")) {
186 implements ExclusionStrategy
194 && field.getName().equals(
"owner")) {
198 && field.getName().equals(
"user")) {
202 && field.getName().equals(
"cutId")) {
205 if (field.getDeclaringClass() ==
Vertex.class
206 && field.getName().equals(
"owner")) {
209 if (field.getDeclaringClass() ==
Vertex.class
210 && field.getName().equals(
"owner")) {
213 if (field.getDeclaringClass() ==
Fragment.class
214 && field.getName().equals(
"jGraphFragIsomorphism")) {
217 if (field.getDeclaringClass() ==
Fragment.class
218 && field.getName().equals(
"lstSymAPs")) {
222 && field.getName().equals(
"lstSymAPs")) {
225 if (field.getDeclaringClass() ==
Template.class
226 && field.getName().equals(
"lstSymAPs")) {
229 if (field.getDeclaringClass() ==
Template.class
230 && field.getName().equals(
"innerToOuterAPs")) {
233 if (field.getDeclaringClass() ==
Template.class
234 && field.getName().equals(
"innerGraph")) {
237 if (field.getDeclaringClass() ==
Template.class
238 && field.getName().equals(
"mol")) {
241 if (field.getDeclaringClass() ==
DGraph.class
242 && field.getName().equals(
"symVertices")) {
Method that serializes this class without creating loops of references.
Attachment point mapping where keys are sorted by natural ordering, i.e., by AttachmentPoint#compareT...
An attachment point (AP) is a possibility to attach a Vertex onto the vertex holding the AP (i....
We expect unique IDs for vertices.
Container for the list of vertices and the edges that connect them.
This class represents the edge between two vertices.
An empty vertex has the behaviors of a vertex, but has no molecular structure.
Class representing a continuously connected portion of chemical object holding attachment points.
This class represents the closure of a ring in a spanning tree.
A collection of AttachmentPoints that are related by a relation that we call "symmetry",...
A collection of Vertexs that are related by a relation that we call "symmetry", even though this clas...
A vertex is a data structure that has an identity and holds a list of AttachmentPoints.
boolean shouldSkipClass(Class<?> clazz)
boolean shouldSkipField(FieldAttributes field)
boolean shouldSkipClass(Class<?> clazz)
boolean shouldSkipField(FieldAttributes field)
Class for de/serializing DENOPTIM graphs from/to JSON format.
static DENOPTIMgson instance
static DENOPTIMgson getInstance()
Deserialisation of collections of both light-weight atoms and bonds into a CDK IAtomContainer.
Class to serialise CDK's IAtomContainer in a simplified manner.